package com.jeesite.modules.digitalize.controller;


import com.baomidou.mybatisplus.extension.api.ApiController;
import com.jeesite.modules.digitalize.entity.dto.component.ComponentReNameDto;
import com.jeesite.modules.digitalize.entity.dto.resource.ResourceAddDto;
import com.jeesite.modules.digitalize.entity.dto.resource.ResourceDelDto;
import com.jeesite.modules.digitalize.entity.dto.resource.ResourceMoveDto;
import com.jeesite.modules.digitalize.entity.vo.resource.ResourcesVo;
import com.jeesite.modules.digitalize.service.DigitalizeResourceLibraryService;
import com.jeesite.modules.digitalize.util.response.ResultVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;


@RestController
@Api(tags = "数字-资料文件")
@RequestMapping("${adminPath}/digitalize/resourceLibrary")
public class DigitalizeResourceLibraryController extends ApiController {

    /**
     * 服务对象
     */
    @Resource
    private DigitalizeResourceLibraryService digitalizeResourceLibraryService;

    /**
    * @date 2024年01月03日 15:04:53
    * @author patronli
    * @Description: 新建文件夹，上传文件
    */
    @ApiOperation("创建文件夹、上传文件")
    @PostMapping("add")
    public ResultVo addFloder(@Validated @RequestBody ResourceAddDto dto) {
        return digitalizeResourceLibraryService.addFloder(dto);
    }


    /**
     * @date 2024年01月03日 15:10:10
     * @author patronli
     * @Description: 文件列表
     */
    @ApiOperation("资源库文件列表")
    @GetMapping("files")
    public ResultVo<List<ResourcesVo>> files(@RequestParam(required = true) String projectCode, String fileName) {
        return digitalizeResourceLibraryService.files(projectCode, fileName);
    }

    /**
     * @date 2024年01月03日 15:11:47
     * @author patronli
     * @Description: 移动
     */
    @ApiOperation("移动文件/文件夹 位置")
    @PostMapping("moveFile")
    public ResultVo moveFile(@Validated @RequestBody ResourceMoveDto dto) {
        return digitalizeResourceLibraryService.moveFile(dto);
    }


    /**
     * @date 2024年01月03日 15:11:47
     * @author patronli
     * @Description: 删除到回收站
     */
    @ApiOperation("删除文件/文件夹名字")
    @PostMapping("delFile")
    public ResultVo delFile(@Validated @RequestBody ResourceDelDto dto) {
        return digitalizeResourceLibraryService.delFile(dto);
    }

    /**
     * 文件夹重命名
     *
     * @param dto 实体对象
     * @return 新增结果
     */
    @ApiOperation("文件夹重命名")
    @PostMapping("reName")
    public ResultVo reName(@RequestBody ComponentReNameDto dto) {
        return this.digitalizeResourceLibraryService.reName(dto);
    }

}

